[新機能] Amazon Bedrock Knowledge BasesにRAG評価機能が追加されました(プレビュー版) #AWSreInvent
こんにちは、@TakaakiKakei です。
2024年12月2日~12月6日(米国太平洋標準時)に開催されるAWS re:Invent 2024に関連して、以下の新機能についてご紹介します。
- Amazon Bedrock Knowledge BasesにおけるRAG評価機能(プレビュー版)
Using RAG evaluations in Amazon Bedrock Knowledge Bases
3行まとめ
- Amazon Bedrock Knowledge BasesにRAG評価機能が追加 (プレビュー版)
- LLMを活用して評価を自動化し、効率的なプロセスを実現
- 評価データセットの準備は必要
何が嬉しいか
これまで、Amazon Bedrock Knowledge BasesでRAGモデルを評価する際には、ユーザー自身で評価を行うか、サードパーティ製品を利用する必要がありました。しかし、この新機能により、AWSサービスを活用してRAGモデルの評価が可能になり、評価プロセスの効率化が期待できます。
公式ドキュメント
評価機能全般のユーザーガイドです。RAG評価機能以外の情報も含まれています。
東京リージョンやAnthropic Claudeなど、利用可能なリージョンやモデルについて記載。
本記事で紹介しているRAG評価機能の具体的な使い方が記載されています。
以下、実際に試してみた内容です。
S3を準備
RAG評価には以下のファイルやフォルダが必要です。東京リージョンのS3バケットを使用します。
- データソースファイル
- 例:
s3://xxxxx/data/ダミー有給申請.pdf
- 例:
s3://xxxxx/data/ダミー経費申請.pdf
- 例:
- 評価結果格納フォルダ(例:
s3://xxxxx/evaluation-results
) - 評価データセットJSONLファイル(例:
s3://xxxxx/evaluation-dataset/20241201-1.jsonl
)
評価データセットは以下のようなJSONL形式で作成します(JSON形式ではエラーが発生します)。
{"conversationTurns":[{"referenceResponses":[{"content":[{"text":"有給休暇申請後の手続きは以下の2点です。1. 有給休暇の確認 社内システムで有給休暇が正しく取得されているか確認してください。2. 代理業務の調整 有給休暇中の業務を他の社員が担当できるよう、事前に業務の引継ぎを行ってください。これらの手続きを行うことで、スムーズに有給休暇を取得し、業務に支障が出ないようにすることができます。"}]}],"prompt":{"content":[{"text":"有給申請後の手続きは?"}]}}]}
{"conversationTurns":[{"referenceResponses":[{"content":[{"text":"経費精算フォームに、領収書・請求書のスキャンデータまたは写真を添付する必要があります。添付する際は、画像が鮮明であることを確認してください。"}]}],"prompt":{"content":[{"text":"領収書・請求書の添付方法は?"}]}}]}
また、S3バケットにはCORS設定が必要です。以下の公式ドキュメントを参照してください。
Amazon Bedrock Knowledge Basesを準備
評価対象のKnowledge Basesを作成します。以下の公式ガイドを参考にしてください。
今回は以下のようなKnowledge Basesを作成します。
- S3のデータソースとして
s3://xxxxx/data/
を指定 - 適当に作成した「ダミー有給申請.pdf」と「ダミー経費申請.pdf」が読み込まれる想定
Knowledge BasesのRAG評価を行う
東京リージョンのAmazon Bedrockのサービス画面で、Evaluationsのページを選択し、Knowledge Basesタブを開きます。
Model as a judge: Evaluate Knowledge Bases using metrics such as context relevance, correctness, completeness, and more. Use LLMs to evaluate your Knowledge Base for retrieval-augmented generation (RAG). Optionally, you can compare up to 2 evaluations.
- 文脈の関連性、正確性、完全性などの指標を使用して、RAGモデルの評価を行うことができる
- 最大2つの評価結果を比較することができる
と記載があります。「Create」ボタンをクリックして、評価を作成していきます。
Evaluation details
評価名や評価モデルを指定します。下図のように指定しました。
Knowledge Base details
評価対象のKnowledge Baseの情報を指定します。下図のように指定しました。
Knowledge Base evaluation typeには、2種類あり検索だけ行うか、検索と回答生成を行うかを指定します。今回は、検索と回答生成を行うRetrive and response generation
を選択しました。
Metrics
評価の指標を指定します。下図のようにでデフォルトのままにしました。
翻訳したものを以下に記載します。
- 有用性(Helpfulness)
- 質問に答える際の回答の有用性と包括性を測定します。
- 正確性(Correctness)
- 質問に答える際の回答の正確さを測定します。
- 論理的一貫性(Logical coherence)
- 回答に論理的な隔たり、矛盾や矛盾がないかを測定します。
- 忠実性(Faithfulness)
- 回答の事実的正確さと、幻覚をどれだけ避けているかを測定します。
- 完全性(Completeness)
- 質問のすべての部分に答える際の回答の完全性を測定します。
- 有害性(Harmfulness)
- 回答が憎悪、侮辱、暴力を使用する程度を測定します。
- 拒否(Refusal)
- 質問への回答を拒否する際の回答の回避性を測定します。
- ステレオタイプ化(Stereotyping)
- 回答における個人やグループに関する一般化された発言を測定します。
Knowledge Base detailsで、Retrive Only
を選択すると、選択可能な評価項目が変わります。
同じく翻訳したものを以下に記載します。
- コンテキスト関連性(Context relevance)
- 取得されたテキストチャンクが質問に対してどれだけ文脈的に関連しているかを測定します。
- コンテキストカバレッジ(Context coverage)
- 取得されたテキストが正解データのテキストに含まれるすべての情報をどの程度カバーしているかを測定します。
Dataset and evaluation results S3 location
準備しておいた、以下のS3の場所を指定します。
- 評価データセット(例:
s3://xxxxx/evaluation-dataset/20241201-1.json
) - 評価結果(例:
s3://xxxxx/evaluation-results
)
KMS キー - オプション
評価ジョブの暗号化方法を指定します。下図のようにでデフォルトのままにしました。
Service access
Create and use a new service role
を選択し、サービス名はデフォルトのままで進めます。「特定のS3バケット」の項目が表示されます。「Dataset and evaluation results S3 location」でS3の情報を入力していると、自動で「入力バケット」と「出力バケット」の情報を元に、入力してくれます。情報の修正が必要な場合は、適宜修正してください。
「ロールの作成」ボタンを押下することを忘れずに。
作成
「作成」ボタンをクリックして、評価を作成します。
この際に、S3のリージョンが異なる場合や、評価データセットの形式が間違っている場合などで、エラーが出やすいのです。あと自動作成したロールでもエラーが出ることがありました。その場合は、トライ中に作成した過去のロールを指定して、再度試してみてください。
以下、結果の確認です。
進行中
ステータスが進行中
になります。しばらく待ちます。
完了済み
ステータスが完了済み
になったら、結果を確認してみましょう。
Metric summary
評価指標ごとの結果が表示されます。以下はサンプル結果です。
Generation metrics breakdown
各評価項目の詳細な結果も確認可能です。
拡大ボタンを押下すると、各列の途切れている箇所も表示されます。
更に詳細に確認したいとき
さらに詳細を確認したい場合は、評価結果(例:s3://xxxxx/evaluation-results
)の格納先のファイルを見ます。
一番深い階層にxxxxx_output.jsonl
のようなファイルがあるので、そちらをお手元のエディタで開けば確認することができます。
おわりに
評価データセットを準備するだけで、Amazon Bedrockが自動で評価を実施してくれるのは非常に便利です。今後、RAGアプリケーションの精度向上に向けて、この機能を積極的に活用していきたいと思います。
それではまた!